#!/usr/bin/env python
#Boa:PyApp:main

import Image
import os
import sys

ancho = 0
alto = 0

#modules ={}

def error(texto=""):
    print
    print "->",texto
    blanco = "                            "
    print
    print "-> Forma correcta del comando:"
    print "-> "+blanco+"resize -w=<ancho> -h=<alto> <namefile>"
    print "-> "+blanco+"donde <ancho> y <alto> estan medidos en pixeles"
    return -1

def verificarArchivos(archivo):
    resultado = True
    if not os.path.lexists(archivo):
        resultado = False
    return resultado
    
def verificarDimension(parametro, control):
    aux1 = parametro[0:3]
    aux2 = control
    if aux1 != aux2:
        return error("ERROR "+aux1)
    aux = parametro[3:]
    try:
        ancho = int(aux)
    except:
        return error(control+" -> debe ser un valor numerico")
    if ancho < 1:
        return error(control+" -> debe ser un valor mayor a 0")
    return ancho

def nombreArchivo(file):
    nombre = os.path.splitext(file)[0]
    i = 1
    while 1:
        nuevoNombre = nombre + "_" + str(i)
        if not verificarArchivos(nuevoNombre + ".jpg"):
            return nuevoNombre
        i += 1

def redimensionando(file,ancho,alto):
    print "-> Redimensionando ",file
    print "=> ancho =",ancho," alto =",alto
    archivo = nombreArchivo(file)+".jpg"
    img1 = Image.open(file)
    img2 = img1.resize((ancho, alto), Image.ANTIALIAS)
    print "-> Nueva imagen almacenada con el nombre",archivo
    img2.save(archivo, "JPEG")
    print "-> Proceso Finalizado"
    print "-> Archivo procesado",file," resultado:",archivo
    return 0

def main():
    parametro1 = sys.argv[1]
    parametro2 = sys.argv[2]
    parametro3 = sys.argv[3]
    ancho = verificarDimension(parametro1,"-w=")
    if ancho < 1: return 1
    alto = verificarDimension(parametro2,"-h=")
    if alto < 1: return 1
    listaArchivos = []
    if parametro3 != "*":
        if not verificarArchivos(parametro3):
            return error("No existe el archivo indicado")
        listaArchivos.append(parametro3)
    else:
        listaArchivos = os.listdir(".")
        
    for archivo in listaArchivos:
        if ".jpg" in archivo:
            redimensionando(archivo,ancho,alto)
    return 0

if __name__ == '__main__':
    if len(sys.argv) == 4:
        main()
    else:
        error("Error en los parametros introducidos")
